#!/bin/bash

# 如果当前用户不是 root，则使用 sudo 重新执行该脚本
if [ "$EUID" -ne 0 ]; then
    sudo "$0" "$@"
    exit
fi

# 1. 获取当前系统启用的 Swap 文件或分区
SWAP_FILES=$(swapon --show=NAME --noheadings)

if [ -z "$SWAP_FILES" ]; then
    echo "系统中没有启用的 Swap 文件或分区。"
    exit 0
fi

# 2. 禁用所有启用的 Swap 文件或分区
echo "正在禁用以下 Swap 文件/分区："
echo "$SWAP_FILES"
for swap in $SWAP_FILES; do
    sudo swapoff "$swap"
    echo "已禁用 Swap: $swap"
done

# 3. 从 /etc/fstab 中删除 Swap 配置
echo "正在从 /etc/fstab 中删除 Swap 文件/分区的配置..."
sudo sed -i.bak '/swap/d' /etc/fstab

# 4. 删除 Swap 文件（如果是文件类型的 Swap）
for swap in $SWAP_FILES; do
    if [ -f "$swap" ]; then
        echo "正在删除 Swap 文件: $swap"
        sudo rm -f "$swap"
    fi
done

echo "Swap 文件/分区禁用并删除完成。"
